﻿using IPlugin.Events;
using IPlugins.Events;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace IPlugins
{
    public interface IPluginHost
    {
        Form MainForm { get; set; }

        event EventHandler<PluginMenuEvent> MenuAdding;
        event EventHandler<PluginMessageEvent> MessageShowing;
        event EventHandler<PluginConfigEvent> ConfigRequested;

        void RegisterFunction(string name, Delegate function);
        object CallFunction(string name, params object[] args);
        Form CreateSandboxForm();
        void InitializePluginSystem();

    }
}
